//判断存储是小端还是大端
//int check_sys()
//{
//	int a = 1;
//	return *(char*)&a;
//}
//#include<stdio.h>
//int main()
//{
//	int ret = check_sys();
//	if (ret == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//	return 0;
//}
//分子量
//#include<stdio.h>
//#include<string.h>
//#include<ctype.h>
//int main()
//{
//	char arr1[100] = { 0 };
//	char arr2[] = {'C','H','O','N'};
//	float arr3[] = { 12.01,1.008,16.00,14.01 };
//	scanf("%s", arr1);
//	int sum = 0;
//	int flag = 0;
//	float fen = 0;
//	int i = 0;
//	for (i = 0; i < strlen(arr1); i++)
//	{
//		if (isalpha(arr1[i]))
//		{
//			for (int j = 0; j < 4; j++)
//			{
//				if (arr1[i] == arr2[j])
//				{
//					fen = fen + arr3[j];
//					if (sum != 0)
//					{
//						fen = fen + (sum - 1) * arr3[flag];
//						sum = 0;
//						flag = j;
//					}
//				}
//			}
//		}
//		else
//		{
//			sum = 10 * sum + (arr1[i] - '0');
//		}
//		if (i == strlen(arr3) - 1)
//		{
//			fen = fen + (sum - 1) * arr3[flag];
//		}
//	}
//	printf("%f", fen);
//	return 0;
//}
//子序列的和
//#include<stdio.h>
//int main()
//{
//	int n, m, k = 1;
//	printf("请输入两个正整数满足n<m<1000000:\n");
//	while (scanf("%d %d", &n,&m))
//	{
//		if (m == 0 && n == 0)
//		{
//			break;
//		}
//		int i = 0;
//		long double temp = 0;
//		for (i = n; i <= m; i++)
//		{
//			temp += 1.0 / i / i;
//		}
//		printf("Case %d:%.5f", k, temp);
//		k++;
//	}
//	return 0;
//}
//分数化小数
#include <stdio.h>
int main()
{
    int a, b, c = 1;、
    int k = 0;
    while (scanf("%d%d%d", &a, &b, &c)!=EOF)
    {
        if (0 == a && 0 == b && 0 == c)
        {
            break;
        }
        int m = a / b;
        k++;
        printf("Case %d: %d.", k, m);
        a %= b;
        int i = 1;
        while (i++ < c)
        {
            a *= 10;
            printf("%d", a / b);
            a %= b;
        }
        a *= 10;
        printf("%d\n", ((a % b) * 10 / b > 5) ? (a / b + 1) : (a / b));
    }
    return 0;
}